package com.bana.fvs.app.mvp;

import java.util.HashMap;

import retrofit2.http.Body;
import retrofit2.http.POST;
import rx.Observable;


/**
 * Created by wei on 2018/2/26.
 */

public interface IApiService {
    /**
     * 登录
     * username password
     */
    @POST(ConstantsValue.BANA_LOGIN + "login.do")
    Observable<String> login(@Body HashMap<String, Object> paramsBody);


    /**
     * 版本更新 token
     * currVersion
     */
    @POST(ConstantsValue.BANA_LOGIN + "validate.do")
    Observable<String> validate(@Body HashMap<String, Object> paramsBody);

    /**
     * 退出
     * token
     */
    @POST(ConstantsValue.BANA_LOGIN + "logout.do")
    Observable<String> logout(@Body HashMap<String, Object> paramsBody);

    /**
     * 获取雾区列表
     * token
     */
    @POST(ConstantsValue.BANA_FOGAREA + "queryFogAreas.do")
    Observable<String> getFogList(@Body HashMap<String, Object> paramsBody);

    /**
     * 获取雾灯列表
     * @param paramsBody
     * @return
     */
//    @POST(ConstantsValue.BANA_LAMP + "getLamps.do")
//    Observable<String> getLampList(@Body HashMap<String, Object> paramsBody);
    @POST(ConstantsValue.BANA_CONTROLLER + "getLamps.do")
    Observable<String> getLampList(@Body HashMap<String, Object> paramsBody);

    /**
     * 获取雾区详情
     * token
     * wqbm
     */
    @POST(ConstantsValue.BANA_FOGAREA + "getFogArea.do")
    Observable<String> getFogInfo(@Body HashMap<String, Object> paramsBody);

    /**
     * 雾区工作模式字典列表
     * token
     */
    @POST(ConstantsValue.BANA_CODE + "getFogAreaWorkModeDicts.do")
    Observable<String> getFogWorkModeDict(@Body HashMap<String, Object> paramsBody);

    /**
     * 雾区雾灯控制字典列表
     * token
     */
//    @POST(ConstantsValue.BANA_CODE + "getLampControlDicts.do")
//    Observable<String> getFoglightCtrlDict(@Body HashMap<String, Object> paramsBody);
    @POST(ConstantsValue.BANA_CODE + "getCodes.do")
    Observable<String> getFoglightCtrlDict(@Body HashMap<String, Object> paramsBody);

    /**
     * 能见度检测仪控制字典列表
     * token
     */
    @POST(ConstantsValue.BANA_CODE + "getVisibilityWorkModeDicts.do")
    Observable<String> getVisibilityWorkModeDicts(@Body HashMap<String, Object> paramsBody);

    /**
     * 能见度检测仪工作模式控制
     * token
     * wqbm-雾区编号
     * gzms-工作模式字典值
     */
    @POST(ConstantsValue.BANA_FOGAREA + "updateVisibilityWorkMode.do")
    Observable<String> visibilityWorkModeUpdate(@Body HashMap<String, Object> paramsBody);
    /**
     * 雾区工作模式控制
     * token
     * wqbm-雾区编号
     * gzms-工作模式字典值
     */
    @POST(ConstantsValue.BANA_FOGAREA + "updateFogAreaWorkMode.do")
    Observable<String> getFogWorkModeUpdate(@Body HashMap<String, Object> paramsBody);

    /**
     * 雾区雾灯控制
     * token
     * wqbm
     * wdkz-雾灯控制字典值
     */
//    @POST(ConstantsValue.BANA_LAMP + "controlLampsInFogArea.do")
//    Observable<String> getFoglightUpdate(@Body HashMap<String, Object> paramsBody);
    @POST(ConstantsValue.BANA_FOGAREA + "setControllersConfig.do")
    Observable<String> getFoglightUpdate(@Body HashMap<String, Object> paramsBody);

    /**
     * 控制策略列表
     * token
     * wqbm
     * wdkz-雾灯控制字典值
     */
    @POST("strategy/getStrategies.do")
    Observable<String> getStrategies(@Body HashMap<String, Object> paramsBody);


    /**
     * 获取设备监控列表
     * token
     * sblx-设备类型
     * sbzt-设备状态
     * pagenum-页码
     */
    @POST(ConstantsValue.BANA_FOGAREA + "getDevices.do")
    Observable<String> getEquipList(@Body HashMap<String, Object> paramsBody);




    /**
     * 获取设备监控列表
     * token
     * sblx-设备类型
     * sbzt-设备状态
     * pagenum-页码
     */
    @POST(ConstantsValue.BANA_FOGAREA + "updateFogAreaTimer.do")
    Observable<String> updateFogAreaTimer(@Body HashMap<String, Object> paramsBody);


    /**
     * 获取能见度检测仪详情
     * token
     * sbbm-设备编码
     */
    @POST(ConstantsValue.BANA_VISIBILITY + "getVisibility.do")
    Observable<String> getVisibDetectInfo(@Body HashMap<String, Object> paramsBody);

    /**
     * 获取区域控制器详情
     * token
     * sbbm-设备编码
     */
    @POST(ConstantsValue.BANA_CONTROLLER + "getController.do")
    Observable<String> getAreaCtrlInfo(@Body HashMap<String, Object> paramsBody);

    /**
     * 获取区域控制器列表
     * token
     * wqbm-雾区编码
     */
    @POST(ConstantsValue.BANA_CONTROLLER + "getControllers.do")
    Observable<String> getControllers(@Body HashMap<String, Object> paramsBody);


    /**
     * 获取雾灯详情
     * token
     * sbbm-设备编码
     */
    @POST(ConstantsValue.BANA_LAMP + "getLamp.do")
    Observable<String> getFoglightInfo(@Body HashMap<String, Object> paramsBody);

    /**
     * 能见度监测仪控制
     * token
     * sbbm-设备编码
     * kzcz-控制操作
     */
    @POST(ConstantsValue.BANA_VISIBILITY + "controlVisibility.do")
    Observable<String> visibDetectCtrl(@Body HashMap<String, Object> paramsBody);

    /**
     * 区域控制器控制
     * token
     * sbbm-设备编码
     * kzcz-控制操作
     */
    @POST(ConstantsValue.BANA_CONTROLLER + "controlController.do")
    Observable<String> areaEquipCtrl(@Body HashMap<String, Object> paramsBody);

    /**
     * 雾灯控制
     * token
     * sbbm-设备编码
     * kzcz-控制操作
     */
    @POST(ConstantsValue.BANA_LAMP + "controlLamp.do")
    Observable<String> foglightCtrl(@Body HashMap<String, Object> paramsBody);

    /**
     * 获取用户信息
     * token
     */
    @POST(ConstantsValue.BANA_USER + "getUser.do")
    Observable<String> getUserInfo(@Body HashMap<String, Object> paramsBody);

    /**
     * 用户信息修改密码
     * token
     * password
     * originalpwd
     */
    @POST(ConstantsValue.BANA_USER + "updatePasswordByUser.do")
    Observable<String> updateUserPwd(@Body HashMap<String, Object> paramsBody);

    /**
     * 修改电话
     * token
     * telephone
     */
    @POST(ConstantsValue.BANA_USER + "updateUserPhone.do")
    Observable<String> updateUserPhone(@Body HashMap<String, Object> paramsBody);

    /**
     * 版本更新 token
     * currVersion
     */
    @POST(ConstantsValue.BANA_USER + "getNewVersion.do")
    Observable<String> getNerVersion(@Body HashMap<String, Object> paramsBody);




}
